home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume3 / g-format / part4 < prev    next >
Encoding:
Internet Message Format  |  1986-11-30  |  33.6 KB

  1. From: J.D.Aplevich <decvax!watmath!watdcsu!aplevich>
  2. Subject: G-format compilers for Ultrix/Unix Vaxes (4 of 4)
  3. Newsgroups: mod.sources
  4. Approved: jpn@panda.UUCP
  5.  
  6. Mod.sources:  Volume 3, Issue 40
  7. Submitted by: J.D.Aplevich <decvax!watmath!watdcsu!aplevich>
  8.  
  9.  
  10. #!/bin/sh
  11. # This is a shell archive, meaning:
  12. # 1. Remove everything above the #!/bin/sh line.
  13. # 2. Save the resulting text in a file.
  14. # 3. Execute the file with /bin/sh (not csh) to create the files:
  15. #    gfloat
  16. # This archive created: Wed Oct 30 20:44:40 1985
  17. export PATH; PATH=/bin:$PATH
  18. if test ! -d 'gfloat'
  19. then
  20.     mkdir 'gfloat'
  21. fi
  22. cd 'gfloat'
  23. if test ! -d 'f77'
  24. then
  25.     mkdir 'f77'
  26. fi
  27. cd 'f77'
  28. if test ! -d 'src'
  29. then
  30.     mkdir 'src'
  31. fi
  32. cd 'src'
  33. if test ! -d 'f77pass1'
  34. then
  35.     mkdir 'f77pass1'
  36. fi
  37. cd 'f77pass1'
  38. if test -f 'intr.c.diff'
  39. then
  40.     echo shar: over-writing existing file "'intr.c.diff'"
  41. fi
  42. cat << \SHAR_EOF > 'intr.c.diff'
  43. *** ../f77/src/f77pass1/intr.c.orig    Tue Oct 29 15:16:01 1985
  44. --- ../f77/src/f77pass1/intr.c    Tue Oct 29 15:22:50 1985
  45. ***************
  46. *** 237,242
  47.       { TYCOMPLEX,TYCOMPLEX,1,"r_cnjg" },
  48.       { TYDCOMPLEX,TYDCOMPLEX,1,"d_cnjg" },
  49.   
  50.       { TYREAL,TYREAL,1,"r_sqrt", 1 },
  51.       { TYDREAL,TYDREAL,1,"d_sqrt", 1 },
  52.       { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
  53.  
  54. --- 237,243 -----
  55.       { TYCOMPLEX,TYCOMPLEX,1,"r_cnjg" },
  56.       { TYDCOMPLEX,TYDCOMPLEX,1,"d_cnjg" },
  57.   
  58. + #ifndef GFLOAT
  59.       { TYREAL,TYREAL,1,"r_sqrt", 1 },
  60.   #else GFLOAT
  61.       { TYREAL,TYREAL,1,"r_sqrt" },
  62. ***************
  63. *** 238,243
  64.       { TYDCOMPLEX,TYDCOMPLEX,1,"d_cnjg" },
  65.   
  66.       { TYREAL,TYREAL,1,"r_sqrt", 1 },
  67.       { TYDREAL,TYDREAL,1,"d_sqrt", 1 },
  68.       { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
  69.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
  70.  
  71. --- 239,247 -----
  72.   
  73.   #ifndef GFLOAT
  74.       { TYREAL,TYREAL,1,"r_sqrt", 1 },
  75. + #else GFLOAT
  76. +     { TYREAL,TYREAL,1,"r_sqrt" },
  77. + #endif GFLOAT
  78.       { TYDREAL,TYDREAL,1,"d_sqrt", 1 },
  79.       { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
  80.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
  81. ***************
  82. *** 242,247
  83.       { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
  84.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
  85.   
  86.       { TYREAL,TYREAL,1,"r_exp", 2 },
  87.       { TYDREAL,TYDREAL,1,"d_exp", 2 },
  88.       { TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
  89.  
  90. --- 246,252 -----
  91.       { TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
  92.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
  93.   
  94. + #ifndef GFLOAT
  95.       { TYREAL,TYREAL,1,"r_exp", 2 },
  96.   #else GFLOAT
  97.       { TYREAL,TYREAL,1,"r_exp" },
  98. ***************
  99. *** 243,248
  100.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
  101.   
  102.       { TYREAL,TYREAL,1,"r_exp", 2 },
  103.       { TYDREAL,TYDREAL,1,"d_exp", 2 },
  104.       { TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
  105.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
  106.  
  107. --- 248,256 -----
  108.   
  109.   #ifndef GFLOAT
  110.       { TYREAL,TYREAL,1,"r_exp", 2 },
  111. + #else GFLOAT
  112. +     { TYREAL,TYREAL,1,"r_exp" },
  113. + #endif GFLOAT
  114.       { TYDREAL,TYDREAL,1,"d_exp", 2 },
  115.       { TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
  116.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
  117. ***************
  118. *** 247,252
  119.       { TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
  120.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
  121.   
  122.       { TYREAL,TYREAL,1,"r_log", 3 },
  123.       { TYDREAL,TYDREAL,1,"d_log", 3 },
  124.       { TYCOMPLEX,TYCOMPLEX,1,"c_log" },
  125.  
  126. --- 255,261 -----
  127.       { TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
  128.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
  129.   
  130. + #ifndef GFLOAT
  131.       { TYREAL,TYREAL,1,"r_log", 3 },
  132.   #else GFLOAT
  133.       { TYREAL,TYREAL,1,"r_log" },
  134. ***************
  135. *** 248,253
  136.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
  137.   
  138.       { TYREAL,TYREAL,1,"r_log", 3 },
  139.       { TYDREAL,TYDREAL,1,"d_log", 3 },
  140.       { TYCOMPLEX,TYCOMPLEX,1,"c_log" },
  141.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_log" },
  142.  
  143. --- 257,265 -----
  144.   
  145.   #ifndef GFLOAT
  146.       { TYREAL,TYREAL,1,"r_log", 3 },
  147. + #else GFLOAT
  148. +     { TYREAL,TYREAL,1,"r_log" },
  149. + #endif GFLOAT
  150.       { TYDREAL,TYDREAL,1,"d_log", 3 },
  151.       { TYCOMPLEX,TYCOMPLEX,1,"c_log" },
  152.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_log" },
  153. ***************
  154. *** 255,260
  155.       { TYREAL,TYREAL,1,"r_lg10" },
  156.       { TYDREAL,TYDREAL,1,"d_lg10" },
  157.   
  158.       { TYREAL,TYREAL,1,"r_sin", 4 },
  159.       { TYDREAL,TYDREAL,1,"d_sin", 4 },
  160.       { TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
  161.  
  162. --- 267,273 -----
  163.       { TYREAL,TYREAL,1,"r_lg10" },
  164.       { TYDREAL,TYDREAL,1,"d_lg10" },
  165.   
  166. + #ifndef GFLOAT
  167.       { TYREAL,TYREAL,1,"r_sin", 4 },
  168.   #else GFLOAT
  169.       { TYREAL,TYREAL,1,"r_sin" }, 
  170. ***************
  171. *** 256,261
  172.       { TYDREAL,TYDREAL,1,"d_lg10" },
  173.   
  174.       { TYREAL,TYREAL,1,"r_sin", 4 },
  175.       { TYDREAL,TYDREAL,1,"d_sin", 4 },
  176.       { TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
  177.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
  178.  
  179. --- 269,277 -----
  180.   
  181.   #ifndef GFLOAT
  182.       { TYREAL,TYREAL,1,"r_sin", 4 },
  183. + #else GFLOAT
  184. +     { TYREAL,TYREAL,1,"r_sin" }, 
  185. + #endif GFLOAT
  186.       { TYDREAL,TYDREAL,1,"d_sin", 4 },
  187.       { TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
  188.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
  189. ***************
  190. *** 260,265
  191.       { TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
  192.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
  193.   
  194.       { TYREAL,TYREAL,1,"r_cos", 5 },
  195.       { TYDREAL,TYDREAL,1,"d_cos", 5 },
  196.       { TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
  197.  
  198. --- 276,282 -----
  199.       { TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
  200.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
  201.   
  202. + #ifndef GFLOAT
  203.       { TYREAL,TYREAL,1,"r_cos", 5 },
  204.   #else GFLOAT
  205.       { TYREAL,TYREAL,1,"r_cos" },
  206. ***************
  207. *** 261,266
  208.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
  209.   
  210.       { TYREAL,TYREAL,1,"r_cos", 5 },
  211.       { TYDREAL,TYDREAL,1,"d_cos", 5 },
  212.       { TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
  213.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
  214.  
  215. --- 278,286 -----
  216.   
  217.   #ifndef GFLOAT
  218.       { TYREAL,TYREAL,1,"r_cos", 5 },
  219. + #else GFLOAT
  220. +     { TYREAL,TYREAL,1,"r_cos" },
  221. + #endif GFLOAT
  222.       { TYDREAL,TYDREAL,1,"d_cos", 5 },
  223.       { TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
  224.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
  225. ***************
  226. *** 265,270
  227.       { TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
  228.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
  229.   
  230.       { TYREAL,TYREAL,1,"r_tan", 6 },
  231.       { TYDREAL,TYDREAL,1,"d_tan", 6 },
  232.   
  233.  
  234. --- 285,291 -----
  235.       { TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
  236.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
  237.   
  238. + #ifndef GFLOAT
  239.       { TYREAL,TYREAL,1,"r_tan", 6 },
  240.   #else GFLOAT
  241.       { TYREAL,TYREAL,1,"r_tan" },
  242. ***************
  243. *** 266,271
  244.       { TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
  245.   
  246.       { TYREAL,TYREAL,1,"r_tan", 6 },
  247.       { TYDREAL,TYDREAL,1,"d_tan", 6 },
  248.   
  249.       { TYREAL,TYREAL,1,"r_asin", 7 },
  250.  
  251. --- 287,295 -----
  252.   
  253.   #ifndef GFLOAT
  254.       { TYREAL,TYREAL,1,"r_tan", 6 },
  255. + #else GFLOAT
  256. +     { TYREAL,TYREAL,1,"r_tan" },
  257. + #endif GFLOAT
  258.       { TYDREAL,TYDREAL,1,"d_tan", 6 },
  259.   
  260.   #ifndef GFLOAT
  261. ***************
  262. *** 268,273
  263.       { TYREAL,TYREAL,1,"r_tan", 6 },
  264.       { TYDREAL,TYDREAL,1,"d_tan", 6 },
  265.   
  266.       { TYREAL,TYREAL,1,"r_asin", 7 },
  267.       { TYDREAL,TYDREAL,1,"d_asin", 7 },
  268.   
  269.  
  270. --- 292,298 -----
  271.   #endif GFLOAT
  272.       { TYDREAL,TYDREAL,1,"d_tan", 6 },
  273.   
  274. + #ifndef GFLOAT
  275.       { TYREAL,TYREAL,1,"r_asin", 7 },
  276.   #else GFLOAT
  277.       { TYREAL,TYREAL,1,"r_asin" },
  278. ***************
  279. *** 269,274
  280.       { TYDREAL,TYDREAL,1,"d_tan", 6 },
  281.   
  282.       { TYREAL,TYREAL,1,"r_asin", 7 },
  283.       { TYDREAL,TYDREAL,1,"d_asin", 7 },
  284.   
  285.       { TYREAL,TYREAL,1,"r_acos", 8 },
  286.  
  287. --- 294,302 -----
  288.   
  289.   #ifndef GFLOAT
  290.       { TYREAL,TYREAL,1,"r_asin", 7 },
  291. + #else GFLOAT
  292. +     { TYREAL,TYREAL,1,"r_asin" },
  293. + #endif GFLOAT
  294.       { TYDREAL,TYDREAL,1,"d_asin", 7 },
  295.   
  296.   #ifndef GFLOAT
  297. ***************
  298. *** 271,276
  299.       { TYREAL,TYREAL,1,"r_asin", 7 },
  300.       { TYDREAL,TYDREAL,1,"d_asin", 7 },
  301.   
  302.       { TYREAL,TYREAL,1,"r_acos", 8 },
  303.       { TYDREAL,TYDREAL,1,"d_acos", 8 },
  304.   
  305.  
  306. --- 299,305 -----
  307.   #endif GFLOAT
  308.       { TYDREAL,TYDREAL,1,"d_asin", 7 },
  309.   
  310. + #ifndef GFLOAT
  311.       { TYREAL,TYREAL,1,"r_acos", 8 },
  312.   #else GFLOAT
  313.       { TYREAL,TYREAL,1,"r_acos" },
  314. ***************
  315. *** 272,277
  316.       { TYDREAL,TYDREAL,1,"d_asin", 7 },
  317.   
  318.       { TYREAL,TYREAL,1,"r_acos", 8 },
  319.       { TYDREAL,TYDREAL,1,"d_acos", 8 },
  320.   
  321.       { TYREAL,TYREAL,1,"r_atan", 9 },
  322.  
  323. --- 301,309 -----
  324.   
  325.   #ifndef GFLOAT
  326.       { TYREAL,TYREAL,1,"r_acos", 8 },
  327. + #else GFLOAT
  328. +     { TYREAL,TYREAL,1,"r_acos" },
  329. + #endif GFLOAT
  330.       { TYDREAL,TYDREAL,1,"d_acos", 8 },
  331.   
  332.   #ifndef GFLOAT
  333. ***************
  334. *** 274,279
  335.       { TYREAL,TYREAL,1,"r_acos", 8 },
  336.       { TYDREAL,TYDREAL,1,"d_acos", 8 },
  337.   
  338.       { TYREAL,TYREAL,1,"r_atan", 9 },
  339.       { TYDREAL,TYDREAL,1,"d_atan", 9 },
  340.   
  341.  
  342. --- 306,312 -----
  343.   #endif GFLOAT
  344.       { TYDREAL,TYDREAL,1,"d_acos", 8 },
  345.   
  346. + #ifndef GFLOAT
  347.       { TYREAL,TYREAL,1,"r_atan", 9 },
  348.   #else GFLOAT
  349.       { TYREAL,TYREAL,1,"r_atan" },
  350. ***************
  351. *** 275,280
  352.       { TYDREAL,TYDREAL,1,"d_acos", 8 },
  353.   
  354.       { TYREAL,TYREAL,1,"r_atan", 9 },
  355.       { TYDREAL,TYDREAL,1,"d_atan", 9 },
  356.   
  357.       { TYREAL,TYREAL,2,"r_atn2", 10 },
  358.  
  359. --- 308,316 -----
  360.   
  361.   #ifndef GFLOAT
  362.       { TYREAL,TYREAL,1,"r_atan", 9 },
  363. + #else GFLOAT
  364. +     { TYREAL,TYREAL,1,"r_atan" },
  365. + #endif GFLOAT
  366.       { TYDREAL,TYDREAL,1,"d_atan", 9 },
  367.   
  368.   #ifndef GFLOAT
  369. ***************
  370. *** 277,282
  371.       { TYREAL,TYREAL,1,"r_atan", 9 },
  372.       { TYDREAL,TYDREAL,1,"d_atan", 9 },
  373.   
  374.       { TYREAL,TYREAL,2,"r_atn2", 10 },
  375.       { TYDREAL,TYDREAL,2,"d_atn2", 10 },
  376.   
  377.  
  378. --- 313,319 -----
  379.   #endif GFLOAT
  380.       { TYDREAL,TYDREAL,1,"d_atan", 9 },
  381.   
  382. + #ifndef GFLOAT
  383.       { TYREAL,TYREAL,2,"r_atn2", 10 },
  384.   #else GFLOAT
  385.       { TYREAL,TYREAL,2,"r_atn2" },
  386. ***************
  387. *** 278,283
  388.       { TYDREAL,TYDREAL,1,"d_atan", 9 },
  389.   
  390.       { TYREAL,TYREAL,2,"r_atn2", 10 },
  391.       { TYDREAL,TYDREAL,2,"d_atn2", 10 },
  392.   
  393.       { TYREAL,TYREAL,1,"r_sinh", 11 },
  394.  
  395. --- 315,323 -----
  396.   
  397.   #ifndef GFLOAT
  398.       { TYREAL,TYREAL,2,"r_atn2", 10 },
  399. + #else GFLOAT
  400. +     { TYREAL,TYREAL,2,"r_atn2" },
  401. + #endif GFLOAT
  402.       { TYDREAL,TYDREAL,2,"d_atn2", 10 },
  403.   
  404.   #ifndef GFLOAT
  405. ***************
  406. *** 280,285
  407.       { TYREAL,TYREAL,2,"r_atn2", 10 },
  408.       { TYDREAL,TYDREAL,2,"d_atn2", 10 },
  409.   
  410.       { TYREAL,TYREAL,1,"r_sinh", 11 },
  411.       { TYDREAL,TYDREAL,1,"d_sinh", 11 },
  412.   
  413.  
  414. --- 320,326 -----
  415.   #endif GFLOAT
  416.       { TYDREAL,TYDREAL,2,"d_atn2", 10 },
  417.   
  418. + #ifndef GFLOAT
  419.       { TYREAL,TYREAL,1,"r_sinh", 11 },
  420.   #else GFLOAT
  421.       { TYREAL,TYREAL,1,"r_sinh" },
  422. ***************
  423. *** 281,286
  424.       { TYDREAL,TYDREAL,2,"d_atn2", 10 },
  425.   
  426.       { TYREAL,TYREAL,1,"r_sinh", 11 },
  427.       { TYDREAL,TYDREAL,1,"d_sinh", 11 },
  428.   
  429.       { TYREAL,TYREAL,1,"r_cosh", 12 },
  430.  
  431. --- 322,330 -----
  432.   
  433.   #ifndef GFLOAT
  434.       { TYREAL,TYREAL,1,"r_sinh", 11 },
  435. + #else GFLOAT
  436. +     { TYREAL,TYREAL,1,"r_sinh" },
  437. + #endif GFLOAT
  438.       { TYDREAL,TYDREAL,1,"d_sinh", 11 },
  439.   
  440.   #ifndef GFLOAT
  441. ***************
  442. *** 283,288
  443.       { TYREAL,TYREAL,1,"r_sinh", 11 },
  444.       { TYDREAL,TYDREAL,1,"d_sinh", 11 },
  445.   
  446.       { TYREAL,TYREAL,1,"r_cosh", 12 },
  447.       { TYDREAL,TYDREAL,1,"d_cosh", 12 },
  448.   
  449.  
  450. --- 327,333 -----
  451.   #endif GFLOAT
  452.       { TYDREAL,TYDREAL,1,"d_sinh", 11 },
  453.   
  454. + #ifndef GFLOAT
  455.       { TYREAL,TYREAL,1,"r_cosh", 12 },
  456.   #else GFLOAT
  457.       { TYREAL,TYREAL,1,"r_cosh" },
  458. ***************
  459. *** 284,289
  460.       { TYDREAL,TYDREAL,1,"d_sinh", 11 },
  461.   
  462.       { TYREAL,TYREAL,1,"r_cosh", 12 },
  463.       { TYDREAL,TYDREAL,1,"d_cosh", 12 },
  464.   
  465.       { TYREAL,TYREAL,1,"r_tanh", 13 },
  466.  
  467. --- 329,337 -----
  468.   
  469.   #ifndef GFLOAT
  470.       { TYREAL,TYREAL,1,"r_cosh", 12 },
  471. + #else GFLOAT
  472. +     { TYREAL,TYREAL,1,"r_cosh" },
  473. + #endif GFLOAT
  474.       { TYDREAL,TYDREAL,1,"d_cosh", 12 },
  475.   
  476.   #ifndef GFLOAT
  477. ***************
  478. *** 286,291
  479.       { TYREAL,TYREAL,1,"r_cosh", 12 },
  480.       { TYDREAL,TYDREAL,1,"d_cosh", 12 },
  481.   
  482.       { TYREAL,TYREAL,1,"r_tanh", 13 },
  483.       { TYDREAL,TYDREAL,1,"d_tanh", 13 },
  484.   
  485.  
  486. --- 334,340 -----
  487.   #endif GFLOAT
  488.       { TYDREAL,TYDREAL,1,"d_cosh", 12 },
  489.   
  490. + #ifndef GFLOAT
  491.       { TYREAL,TYREAL,1,"r_tanh", 13 },
  492.   #else GFLOAT
  493.       { TYREAL,TYREAL,1,"r_tanh" },
  494. ***************
  495. *** 287,292
  496.       { TYDREAL,TYDREAL,1,"d_cosh", 12 },
  497.   
  498.       { TYREAL,TYREAL,1,"r_tanh", 13 },
  499.       { TYDREAL,TYDREAL,1,"d_tanh", 13 },
  500.   
  501.       { TYCHAR,TYLOGICAL,2,"hl_ge" },
  502.  
  503. --- 336,344 -----
  504.   
  505.   #ifndef GFLOAT
  506.       { TYREAL,TYREAL,1,"r_tanh", 13 },
  507. + #else GFLOAT
  508. +     { TYREAL,TYREAL,1,"r_tanh" },
  509. + #endif GFLOAT
  510.       { TYDREAL,TYDREAL,1,"d_tanh", 13 },
  511.   
  512.       { TYCHAR,TYLOGICAL,2,"hl_ge" },
  513. ***************
  514. *** 306,311
  515.       { TYDREAL,TYSHORT,1,"hd_expn" },
  516.       { TYDREAL,TYLONG,1,"id_expn" },
  517.   
  518.       { TYREAL,TYREAL,1,"r_absp" },
  519.       { TYDREAL,TYDREAL,1,"d_absp" },
  520.   
  521.  
  522. --- 358,364 -----
  523.       { TYDREAL,TYSHORT,1,"hd_expn" },
  524.       { TYDREAL,TYLONG,1,"id_expn" },
  525.   
  526. + #ifndef GFLOAT
  527.       { TYREAL,TYREAL,1,"r_absp" },
  528.   #else GFLOAT
  529.       { TYREAL,TYDREAL,1,"r_absp" },
  530. ***************
  531. *** 307,312
  532.       { TYDREAL,TYLONG,1,"id_expn" },
  533.   
  534.       { TYREAL,TYREAL,1,"r_absp" },
  535.       { TYDREAL,TYDREAL,1,"d_absp" },
  536.   
  537.       { TYREAL,TYDREAL,1,"r_rrsp" },
  538.  
  539. --- 360,368 -----
  540.   
  541.   #ifndef GFLOAT
  542.       { TYREAL,TYREAL,1,"r_absp" },
  543. + #else GFLOAT
  544. +     { TYREAL,TYDREAL,1,"r_absp" },
  545. + #endif GFLOAT
  546.       { TYDREAL,TYDREAL,1,"d_absp" },
  547.   
  548.       { TYREAL,TYDREAL,1,"r_rrsp" },
  549. ***************
  550. *** 312,317
  551.       { TYREAL,TYDREAL,1,"r_rrsp" },
  552.       { TYDREAL,TYDREAL,1,"d_rrsp" },
  553.   
  554.       { TYREAL,TYREAL,1,"r_frac" },
  555.       { TYDREAL,TYDREAL,1,"d_frac" },
  556.   
  557.  
  558. --- 368,374 -----
  559.       { TYREAL,TYDREAL,1,"r_rrsp" },
  560.       { TYDREAL,TYDREAL,1,"d_rrsp" },
  561.   
  562. + #ifndef GFLOAT
  563.       { TYREAL,TYREAL,1,"r_frac" },
  564.   #else GFLOAT
  565.       { TYREAL,TYDREAL,1,"r_frac" },
  566. ***************
  567. *** 313,318
  568.       { TYDREAL,TYDREAL,1,"d_rrsp" },
  569.   
  570.       { TYREAL,TYREAL,1,"r_frac" },
  571.       { TYDREAL,TYDREAL,1,"d_frac" },
  572.   
  573.       { TYREAL,TYREAL,2,"r_make" },
  574.  
  575. --- 370,378 -----
  576.   
  577.   #ifndef GFLOAT
  578.       { TYREAL,TYREAL,1,"r_frac" },
  579. + #else GFLOAT
  580. +     { TYREAL,TYDREAL,1,"r_frac" },
  581. + #endif GFLOAT
  582.       { TYDREAL,TYDREAL,1,"d_frac" },
  583.   
  584.   #ifndef GFLOAT
  585. ***************
  586. *** 315,320
  587.       { TYREAL,TYREAL,1,"r_frac" },
  588.       { TYDREAL,TYDREAL,1,"d_frac" },
  589.   
  590.       { TYREAL,TYREAL,2,"r_make" },
  591.       { TYDREAL,TYDREAL,2,"d_make" },
  592.   
  593.  
  594. --- 375,381 -----
  595.   #endif GFLOAT
  596.       { TYDREAL,TYDREAL,1,"d_frac" },
  597.   
  598. + #ifndef GFLOAT
  599.       { TYREAL,TYREAL,2,"r_make" },
  600.   #else GFLOAT
  601.       { TYREAL,TYDREAL,2,"r_make" },
  602. ***************
  603. *** 316,321
  604.       { TYDREAL,TYDREAL,1,"d_frac" },
  605.   
  606.       { TYREAL,TYREAL,2,"r_make" },
  607.       { TYDREAL,TYDREAL,2,"d_make" },
  608.   
  609.       { TYREAL,TYREAL,2,"r_scal" },
  610.  
  611. --- 377,385 -----
  612.   
  613.   #ifndef GFLOAT
  614.       { TYREAL,TYREAL,2,"r_make" },
  615. + #else GFLOAT
  616. +     { TYREAL,TYDREAL,2,"r_make" },
  617. + #endif GFLOAT
  618.       { TYDREAL,TYDREAL,2,"d_make" },
  619.   
  620.   #ifndef GFLOAT
  621. ***************
  622. *** 318,323
  623.       { TYREAL,TYREAL,2,"r_make" },
  624.       { TYDREAL,TYDREAL,2,"d_make" },
  625.   
  626.       { TYREAL,TYREAL,2,"r_scal" },
  627.       { TYDREAL,TYDREAL,2,"d_scal" }
  628.   } ;
  629.  
  630. --- 382,388 -----
  631.   #endif GFLOAT
  632.       { TYDREAL,TYDREAL,2,"d_make" },
  633.   
  634. + #ifndef GFLOAT
  635.       { TYREAL,TYREAL,2,"r_scal" },
  636.   #else GFLOAT
  637.       { TYREAL,TYDREAL,2,"r_scal" },
  638. ***************
  639. *** 319,324
  640.       { TYDREAL,TYDREAL,2,"d_make" },
  641.   
  642.       { TYREAL,TYREAL,2,"r_scal" },
  643.       { TYDREAL,TYDREAL,2,"d_scal" }
  644.   } ;
  645.   
  646.  
  647. --- 384,392 -----
  648.   
  649.   #ifndef GFLOAT
  650.       { TYREAL,TYREAL,2,"r_scal" },
  651. + #else GFLOAT
  652. +     { TYREAL,TYDREAL,2,"r_scal" },
  653. + #endif GFLOAT
  654.       { TYDREAL,TYDREAL,2,"d_scal" }
  655.   } ;
  656.   
  657. SHAR_EOF
  658. chmod +x 'intr.c.diff'
  659. if test -f 'optcse.c.diff'
  660. then
  661.     echo shar: over-writing existing file "'optcse.c.diff'"
  662. fi
  663. cat << \SHAR_EOF > 'optcse.c.diff'
  664. *** ../f77/src/f77pass1/optcse.c.orig    Tue Oct 29 15:16:07 1985
  665. --- ../f77/src/f77pass1/optcse.c    Tue Oct 29 15:22:56 1985
  666. ***************
  667. *** 477,483
  668.               case TYLONG:
  669.                   if(ap->ci == bp->ci) return(TRUE);
  670.                   break;
  671. !             case TYREAL:
  672.               case TYDREAL:
  673.                   if(ap->cd[0] == bp->cd[0]) return(TRUE);
  674.                   break;
  675.  
  676. --- 477,487 -----
  677.               case TYLONG:
  678.                   if(ap->ci == bp->ci) return(TRUE);
  679.                   break;
  680. !             case TYREAL: 
  681. ! #ifdef GFLOAT
  682. !                 if(ap->cr[0] == bp->cr[0]) return(TRUE);
  683. !                 break;
  684. ! #endif GFLOAT
  685.               case TYDREAL:
  686.                   if(ap->cd[0] == bp->cd[0]) return(TRUE);
  687.                   break;
  688. ***************
  689. *** 482,487
  690.                   if(ap->cd[0] == bp->cd[0]) return(TRUE);
  691.                   break;
  692.               case TYCOMPLEX:
  693.               case TYDCOMPLEX:
  694.                   if(ap->cd[0] == bp->cd[0] &&
  695.                       ap->cd[1] == bp->cd[1] )
  696.  
  697. --- 486,497 -----
  698.                   if(ap->cd[0] == bp->cd[0]) return(TRUE);
  699.                   break;
  700.               case TYCOMPLEX:
  701. + #ifdef GFLOAT
  702. +                 if(ap->cr[0] == bp->cr[0] &&
  703. +                     ap->cr[1] == bp->cr[1] )
  704. +                     return(TRUE);
  705. +                 break;
  706. + #endif GFLOAT
  707.               case TYDCOMPLEX:
  708.                   if(ap->cd[0] == bp->cd[0] &&
  709.                       ap->cd[1] == bp->cd[1] )
  710. SHAR_EOF
  711. chmod +x 'optcse.c.diff'
  712. if test -f 'optloop.c.diff'
  713. then
  714.     echo shar: over-writing existing file "'optloop.c.diff'"
  715. fi
  716. cat << \SHAR_EOF > 'optloop.c.diff'
  717. *** ../f77/src/f77pass1/optloop.c.orig    Tue Oct 29 15:16:09 1985
  718. --- ../f77/src/f77pass1/optloop.c    Wed Oct 30 20:26:44 1985
  719. ***************
  720. *** 660,665
  721.         return YES;
  722.   
  723.     if (ISREAL(p->constblock.vtype))
  724.       if (abs(p->constblock.const.cd[0]) <= 1.0)
  725.         return YES;
  726.   
  727.  
  728. --- 660,666 -----
  729.         return YES;
  730.   
  731.     if (ISREAL(p->constblock.vtype))
  732. + #ifndef GFLOAT
  733.       if (abs(p->constblock.const.cd[0]) <= 1.0)
  734.   #else GFLOAT
  735.       if (p->constblock.vtype==TYREAL) {
  736. ***************
  737. *** 661,666
  738.   
  739.     if (ISREAL(p->constblock.vtype))
  740.       if (abs(p->constblock.const.cd[0]) <= 1.0)
  741.         return YES;
  742.   
  743.     return NO;
  744.  
  745. --- 662,673 -----
  746.     if (ISREAL(p->constblock.vtype))
  747.   #ifndef GFLOAT
  748.       if (abs(p->constblock.const.cd[0]) <= 1.0)
  749. + #else GFLOAT
  750. +     if (p->constblock.vtype==TYREAL) {
  751. +       if (abs(p->constblock.const.cr[0]) <= 1.0) return YES;
  752. +       }
  753. +     else if (abs(p->constblock.const.cd[0]) <= 1.0)
  754. + #endif GFLOAT
  755.         return YES;
  756.   
  757.     return NO;
  758. SHAR_EOF
  759. chmod +x 'optloop.c.diff'
  760. if test -f 'put.c.diff'
  761. then
  762.     echo shar: over-writing existing file "'put.c.diff'"
  763. fi
  764. cat << \SHAR_EOF > 'put.c.diff'
  765. *** ../f77/src/f77pass1/put.c.orig    Tue Oct 29 15:16:12 1985
  766. --- ../f77/src/f77pass1/put.c    Tue Oct 29 15:23:07 1985
  767. ***************
  768. *** 169,174
  769.   
  770.   if (ISCONST(p))
  771.       {
  772.       if (ISCOMPLEX(p->constblock.vtype))
  773.           return(mkrealcon(p->constblock.vtype == TYCOMPLEX ?
  774.                       TYREAL : TYDREAL,
  775.  
  776. --- 169,175 -----
  777.   
  778.   if (ISCONST(p))
  779.       {
  780. + #ifndef GFLOAT
  781.       if (ISCOMPLEX(p->constblock.vtype))
  782.           return(mkrealcon(p->constblock.vtype == TYCOMPLEX ?
  783.                       TYREAL : TYDREAL,
  784. ***************
  785. *** 173,178
  786.           return(mkrealcon(p->constblock.vtype == TYCOMPLEX ?
  787.                       TYREAL : TYDREAL,
  788.                   p->constblock.const.cd[1]));
  789.       else if (p->constblock.vtype == TYDREAL)
  790.           return(mkrealcon(TYDREAL, 0.0));
  791.       else
  792.  
  793. --- 174,186 -----
  794.           return(mkrealcon(p->constblock.vtype == TYCOMPLEX ?
  795.                       TYREAL : TYDREAL,
  796.                   p->constblock.const.cd[1]));
  797. + #else GFLOAT
  798. +     if (p->constblock.vtype == TYCOMPLEX) 
  799. +         return(mkrealcon( TYREAL, 
  800. +             (double) p->constblock.const.cr[1]));
  801. +     else if (p->constblock.vtype == TYDCOMPLEX)
  802. +         return(mkrealcon( TYDREAL, p->constblock.const.cd[1]));
  803. + #endif GFLOAT
  804.       else if (p->constblock.vtype == TYDREAL)
  805.           return(mkrealcon(TYDREAL, 0.0));
  806.       else
  807. ***************
  808. *** 340,345
  809.           k = 2;
  810.       case TYREAL:
  811.           type = TYREAL;
  812.           goto flpt;
  813.   
  814.       case TYDCOMPLEX:
  815.  
  816. --- 348,354 -----
  817.           k = 2;
  818.       case TYREAL:
  819.           type = TYREAL;
  820. + #ifndef GFLOAT
  821.           goto flpt;
  822.   #else GFLOAT
  823.           for(i = 0 ; i < k ; ++i) 
  824. ***************
  825. *** 341,346
  826.       case TYREAL:
  827.           type = TYREAL;
  828.           goto flpt;
  829.   
  830.       case TYDCOMPLEX:
  831.           k = 2;
  832.  
  833. --- 350,360 -----
  834.           type = TYREAL;
  835.   #ifndef GFLOAT
  836.           goto flpt;
  837. + #else GFLOAT
  838. +         for(i = 0 ; i < k ; ++i) 
  839. +             prconr(asmfile, type, &p->const.cr[i]); 
  840. +         break;
  841. + #endif GFLOAT
  842.   
  843.       case TYDCOMPLEX:
  844.           k = 2;
  845. ***************
  846. *** 346,351
  847.           k = 2;
  848.       case TYDREAL:
  849.           type = TYDREAL;
  850.   
  851.       flpt:
  852.           for(i = 0 ; i < k ; ++i)
  853.  
  854. --- 360,366 -----
  855.           k = 2;
  856.       case TYDREAL:
  857.           type = TYDREAL;
  858. + #ifndef GFLOAT
  859.   
  860.       flpt:
  861.   #endif GFLOAT
  862. ***************
  863. *** 348,353
  864.           type = TYDREAL;
  865.   
  866.       flpt:
  867.           for(i = 0 ; i < k ; ++i)
  868.               prconr(asmfile, type, p->const.cd[i]);
  869.           break;
  870.  
  871. --- 363,369 -----
  872.   #ifndef GFLOAT
  873.   
  874.       flpt:
  875. + #endif GFLOAT
  876.           for(i = 0 ; i < k ; ++i)
  877.   #ifndef GFLOAT
  878.               prconr(asmfile, type, p->const.cd[i]);
  879. ***************
  880. *** 349,354
  881.   
  882.       flpt:
  883.           for(i = 0 ; i < k ; ++i)
  884.               prconr(asmfile, type, p->const.cd[i]);
  885.           break;
  886.   
  887.  
  888. --- 365,371 -----
  889.       flpt:
  890.   #endif GFLOAT
  891.           for(i = 0 ; i < k ; ++i)
  892. + #ifndef GFLOAT
  893.               prconr(asmfile, type, p->const.cd[i]);
  894.   #else GFLOAT
  895.               prconr(asmfile, type, &p->const.cd[i]);
  896. ***************
  897. *** 350,355
  898.       flpt:
  899.           for(i = 0 ; i < k ; ++i)
  900.               prconr(asmfile, type, p->const.cd[i]);
  901.           break;
  902.   
  903.       case TYCHAR:
  904.  
  905. --- 367,375 -----
  906.           for(i = 0 ; i < k ; ++i)
  907.   #ifndef GFLOAT
  908.               prconr(asmfile, type, p->const.cd[i]);
  909. + #else GFLOAT
  910. +             prconr(asmfile, type, &p->const.cd[i]);
  911. + #endif GFLOAT
  912.           break;
  913.   
  914.       case TYCHAR:
  915. SHAR_EOF
  916. chmod +x 'put.c.diff'
  917. if test -f 'vax.c.diff'
  918. then
  919.     echo shar: over-writing existing file "'vax.c.diff'"
  920. fi
  921. cat << \SHAR_EOF > 'vax.c.diff'
  922. *** ../f77/src/f77pass1/vax.c.orig    Tue Oct 29 15:16:18 1985
  923. --- ../f77/src/f77pass1/vax.c    Tue Oct 29 15:23:13 1985
  924. ***************
  925. *** 69,74
  926.   
  927.   ftnint intcon[14] =
  928.       { 2, 2, 2, 2,
  929.         15, 31, 24, 56,
  930.         -128, -128, 127, 127,
  931.         32767, 2147483647 };
  932.  
  933. --- 69,75 -----
  934.   
  935.   ftnint intcon[14] =
  936.       { 2, 2, 2, 2,
  937. + #ifndef GFLOAT
  938.         15, 31, 24, 56,
  939.         -128, -128, 127, 127,
  940.   #else GFLOAT
  941. ***************
  942. *** 71,76
  943.       { 2, 2, 2, 2,
  944.         15, 31, 24, 56,
  945.         -128, -128, 127, 127,
  946.         32767, 2147483647 };
  947.   
  948.   #if HERE == VAX
  949.  
  950. --- 72,81 -----
  951.   #ifndef GFLOAT
  952.         15, 31, 24, 56,
  953.         -128, -128, 127, 127,
  954. + #else GFLOAT
  955. +       15, 31, 24, 53,
  956. +       -128, -1024, 127, 1023,
  957. + #endif GFLOAT
  958.         32767, 2147483647 };
  959.   
  960.   #if HERE == VAX
  961. ***************
  962. *** 78,83
  963.   long realcon[6][2] =
  964.       {
  965.           { 0200, 0 },
  966.           { 0200, 0 },
  967.           { 037777677777, 0 },
  968.           { 037777677777, 037777777777 },
  969.  
  970. --- 83,89 -----
  971.   long realcon[6][2] =
  972.       {
  973.           { 0200, 0 },
  974. + #ifndef GFLOAT
  975.           { 0200, 0 },
  976.   #else GFLOAT
  977.           { 0020, 0 },
  978. ***************
  979. *** 79,84
  980.       {
  981.           { 0200, 0 },
  982.           { 0200, 0 },
  983.           { 037777677777, 0 },
  984.           { 037777677777, 037777777777 },
  985.           { 032200, 0 },
  986.  
  987. --- 85,93 -----
  988.           { 0200, 0 },
  989.   #ifndef GFLOAT
  990.           { 0200, 0 },
  991. + #else GFLOAT
  992. +         { 0020, 0 },
  993. + #endif GFLOAT
  994.           { 037777677777, 0 },
  995.   #ifndef GFLOAT
  996.           { 037777677777, 037777777777 },
  997. ***************
  998. *** 80,85
  999.           { 0200, 0 },
  1000.           { 0200, 0 },
  1001.           { 037777677777, 0 },
  1002.           { 037777677777, 037777777777 },
  1003.           { 032200, 0 },
  1004.           { 022200, 0 }
  1005.  
  1006. --- 89,95 -----
  1007.           { 0020, 0 },
  1008.   #endif GFLOAT
  1009.           { 037777677777, 0 },
  1010. + #ifndef GFLOAT
  1011.           { 037777677777, 037777777777 },
  1012.   #else GFLOAT
  1013.           { 037777677777, 037777777777 },
  1014. ***************
  1015. *** 81,86
  1016.           { 0200, 0 },
  1017.           { 037777677777, 0 },
  1018.           { 037777677777, 037777777777 },
  1019.           { 032200, 0 },
  1020.           { 022200, 0 }
  1021.       };
  1022.  
  1023. --- 91,99 -----
  1024.           { 037777677777, 0 },
  1025.   #ifndef GFLOAT
  1026.           { 037777677777, 037777777777 },
  1027. + #else GFLOAT
  1028. +         { 037777677777, 037777777777 },
  1029. + #endif GFLOAT
  1030.           { 032200, 0 },
  1031.   #ifndef GFLOAT
  1032.           { 022200, 0 }
  1033. ***************
  1034. *** 82,87
  1035.           { 037777677777, 0 },
  1036.           { 037777677777, 037777777777 },
  1037.           { 032200, 0 },
  1038.           { 022200, 0 }
  1039.       };
  1040.   #else
  1041.  
  1042. --- 95,101 -----
  1043.           { 037777677777, 037777777777 },
  1044.   #endif GFLOAT
  1045.           { 032200, 0 },
  1046. + #ifndef GFLOAT
  1047.           { 022200, 0 }
  1048.   #else GFLOAT
  1049.           { 036320, 0 }
  1050. ***************
  1051. *** 83,88
  1052.           { 037777677777, 037777777777 },
  1053.           { 032200, 0 },
  1054.           { 022200, 0 }
  1055.       };
  1056.   #else
  1057.   double realcon[6] =
  1058.  
  1059. --- 97,105 -----
  1060.           { 032200, 0 },
  1061.   #ifndef GFLOAT
  1062.           { 022200, 0 }
  1063. + #else GFLOAT
  1064. +         { 036320, 0 }
  1065. + #endif GFLOAT
  1066.       };
  1067.   #else
  1068.   double realcon[6] =
  1069. ***************
  1070. *** 197,202
  1071.   prconr(fp, type, x)
  1072.   FILEP fp;
  1073.   int type;
  1074.   float x;
  1075.   {
  1076.   fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
  1077.  
  1078. --- 214,220 -----
  1079.   prconr(fp, type, x)
  1080.   FILEP fp;
  1081.   int type;
  1082. + #ifndef GFLOAT
  1083.   float x;
  1084.   #else GFLOAT
  1085.   float *x;
  1086. ***************
  1087. *** 198,203
  1088.   FILEP fp;
  1089.   int type;
  1090.   float x;
  1091.   {
  1092.   fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
  1093.   }
  1094.  
  1095. --- 216,224 -----
  1096.   int type;
  1097.   #ifndef GFLOAT
  1098.   float x;
  1099. + #else GFLOAT
  1100. + float *x;
  1101. + #endif GFLOAT
  1102.   {
  1103.   #ifndef GFLOAT
  1104.   fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
  1105. ***************
  1106. *** 199,204
  1107.   int type;
  1108.   float x;
  1109.   {
  1110.   fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
  1111.   }
  1112.   #endif
  1113.  
  1114. --- 220,226 -----
  1115.   float *x;
  1116.   #endif GFLOAT
  1117.   {
  1118. + #ifndef GFLOAT
  1119.   fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
  1120.   #else GFLOAT
  1121.   fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), *x);
  1122. ***************
  1123. *** 200,205
  1124.   float x;
  1125.   {
  1126.   fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
  1127.   }
  1128.   #endif
  1129.   
  1130.  
  1131. --- 222,230 -----
  1132.   {
  1133.   #ifndef GFLOAT
  1134.   fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
  1135. + #else GFLOAT
  1136. + fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), *x);
  1137. + #endif GFLOAT
  1138.   }
  1139.   #endif
  1140.   
  1141. ***************
  1142. *** 207,212
  1143.   prconr(fp, type, x)
  1144.   FILEP fp;
  1145.   int type;
  1146.   double x;
  1147.   {
  1148.   /* non-portable cheat to preserve bit patterns */
  1149.  
  1150. --- 232,238 -----
  1151.   prconr(fp, type, x)
  1152.   FILEP fp;
  1153.   int type;
  1154. + #ifndef GFLOAT
  1155.   double x;
  1156.   {
  1157.   /* non-portable cheat to preserve bit patterns */
  1158. ***************
  1159. *** 226,231
  1160.       fprintf(fp, "\t.long\t0x%X,0x%X\n", cheat.xl[0], cheat.xl[1]);
  1161.       i = SZDOUBLE;
  1162.       }
  1163.   if(fp == initfile)
  1164.       i_offset += i;
  1165.   else
  1166.  
  1167. --- 252,274 -----
  1168.       fprintf(fp, "\t.long\t0x%X,0x%X\n", cheat.xl[0], cheat.xl[1]);
  1169.       i = SZDOUBLE;
  1170.       }
  1171. + #else GFLOAT
  1172. + /* This assumes two longs make a double */
  1173. + long *x;
  1174. + {
  1175. + register int i;
  1176. + if(type == TYREAL)
  1177. +     {
  1178. +     fprintf(fp, "\t.long\t0x%X\n", *x );
  1179. +     i = SZFLOAT;
  1180. +     }
  1181. + else
  1182. +     {
  1183. +     fprintf(fp, "\t.long\t0x%X,0x%X\n", *x, *(x+1) );
  1184. +     i = SZDOUBLE;
  1185. +     }
  1186. + #endif GFLOAT
  1187.   if(fp == initfile)
  1188.       i_offset += i;
  1189.   else
  1190. ***************
  1191. *** 369,374
  1192.   else if (type == TYSHORT)
  1193.       p2pass("\ttstw\tr0");
  1194.   else
  1195.       p2pass("\ttstd\tr0");
  1196.   p2pi("\tjlss\tL%d", neg);
  1197.   p2pi("\tjeql\tL%d", zer);
  1198.  
  1199. --- 412,418 -----
  1200.   else if (type == TYSHORT)
  1201.       p2pass("\ttstw\tr0");
  1202.   else
  1203. + #ifndef GFLOAT
  1204.       p2pass("\ttstd\tr0");
  1205.   #else GFLOAT
  1206.       p2pass("\ttstg\tr0");
  1207. ***************
  1208. *** 370,375
  1209.       p2pass("\ttstw\tr0");
  1210.   else
  1211.       p2pass("\ttstd\tr0");
  1212.   p2pi("\tjlss\tL%d", neg);
  1213.   p2pi("\tjeql\tL%d", zer);
  1214.   p2pi("\tjbr\tL%d", pos);
  1215.  
  1216. --- 414,422 -----
  1217.   else
  1218.   #ifndef GFLOAT
  1219.       p2pass("\ttstd\tr0");
  1220. + #else GFLOAT
  1221. +     p2pass("\ttstg\tr0");
  1222. + #endif GFLOAT
  1223.   p2pi("\tjlss\tL%d", neg);
  1224.   p2pi("\tjeql\tL%d", zer);
  1225.   p2pi("\tjbr\tL%d", pos);
  1226. SHAR_EOF
  1227. chmod +x 'vax.c.diff'
  1228. if test -f 'Makefile.diff'
  1229. then
  1230.     echo shar: over-writing existing file "'Makefile.diff'"
  1231. fi
  1232. cat << \SHAR_EOF > 'Makefile.diff'
  1233. *** ../f77/src/f77pass1/Makefile.orig    Tue Oct 29 15:16:19 1985
  1234. --- ../f77/src/f77pass1/Makefile    Tue Oct 29 15:23:17 1985
  1235. ***************
  1236. *** 2,8
  1237.   #
  1238.   
  1239.   CFLAGS          = -O -DHERE=VAX -DTARGET=VAX -DFAMILY=PCC -DUCBVAXASM -DUCBPASS2 \
  1240. !         -I../../include
  1241.   
  1242.   DEST          = $(DESTROOT)/usr/lib
  1243.   
  1244.  
  1245. --- 2,8 -----
  1246.   #
  1247.   
  1248.   CFLAGS          = -O -DHERE=VAX -DTARGET=VAX -DFAMILY=PCC -DUCBVAXASM -DUCBPASS2 \
  1249. !         -DGFLOAT -I../../include
  1250.   
  1251.   DEST          = $(DESTROOT)/usr/lib
  1252.   
  1253. SHAR_EOF
  1254. chmod +x 'Makefile.diff'
  1255. if test -f 'conv.h.diff'
  1256. then
  1257.     echo shar: over-writing existing file "'conv.h.diff'"
  1258. fi
  1259. cat << \SHAR_EOF > 'conv.h.diff'
  1260. *** ../f77/src/f77pass1/conv.h.orig    Tue Oct 29 15:15:46 1985
  1261. --- ../f77/src/f77pass1/conv.h    Tue Oct 29 15:22:26 1985
  1262. ***************
  1263. *** 20,25
  1264.   #define MINWORD -32768
  1265.   
  1266.   typedef
  1267.     struct Dreal
  1268.       {
  1269.         unsigned fract1: 7;
  1270.  
  1271. --- 20,26 -----
  1272.   #define MINWORD -32768
  1273.   
  1274.   typedef
  1275. + #ifndef GFLOAT
  1276.     struct Dreal
  1277.       {
  1278.         unsigned fract1: 7;
  1279. ***************
  1280. *** 24,29
  1281.       {
  1282.         unsigned fract1: 7;
  1283.         unsigned exp: 8;
  1284.         unsigned sign: 1;
  1285.         unsigned fract2: 16;
  1286.         unsigned fract3: 16;
  1287.  
  1288. --- 25,36 -----
  1289.       {
  1290.         unsigned fract1: 7;
  1291.         unsigned exp: 8;
  1292. + #else GFLOAT
  1293. +   struct Greal
  1294. +     {
  1295. +       unsigned fract1: 4;
  1296. +       unsigned exp: 11;
  1297. + #endif GFLOAT
  1298.         unsigned sign: 1;
  1299.         unsigned fract2: 16;
  1300.         unsigned fract3: 16;
  1301. ***************
  1302. *** 29,34
  1303.         unsigned fract3: 16;
  1304.         unsigned fract4: 16;
  1305.       }
  1306.     dreal;
  1307.   
  1308.   typedef
  1309.  
  1310. --- 36,42 -----
  1311.         unsigned fract3: 16;
  1312.         unsigned fract4: 16;
  1313.       }
  1314. + #ifndef GFLOAT
  1315.     dreal;
  1316.   #else GFLOAT
  1317.     greal;
  1318. ***************
  1319. *** 30,35
  1320.         unsigned fract4: 16;
  1321.       }
  1322.     dreal;
  1323.   
  1324.   typedef
  1325.     struct Quad
  1326.  
  1327. --- 38,46 -----
  1328.       }
  1329.   #ifndef GFLOAT
  1330.     dreal;
  1331. + #else GFLOAT
  1332. +   greal;
  1333. + #endif GFLOAT
  1334.   
  1335.   typedef
  1336.     struct Quad
  1337. ***************
  1338. *** 40,45
  1339.     quad;
  1340.   
  1341.   typedef
  1342.     union RealValue
  1343.       {
  1344.         double d;
  1345.  
  1346. --- 51,69 -----
  1347.     quad;
  1348.   
  1349.   typedef
  1350. + #ifdef GFLOAT
  1351. +   struct Freal
  1352. +     {
  1353. +       unsigned fract1: 7;
  1354. +       unsigned exp: 8;
  1355. +       unsigned sign: 1;
  1356. +       unsigned fract2: 16;
  1357. +       unsigned fract3: 16;
  1358. +       unsigned fract4: 16;
  1359. +     }
  1360. +   freal;
  1361. + typedef
  1362. + #endif GFLOAT
  1363.     union RealValue
  1364.       {
  1365.         double d;
  1366. ***************
  1367. *** 44,49
  1368.       {
  1369.         double d;
  1370.         quad   q;
  1371.         dreal  f;
  1372.       }
  1373.     realvalue;
  1374.  
  1375. --- 68,74 -----
  1376.       {
  1377.         double d;
  1378.         quad   q;
  1379. + #ifndef GFLOAT
  1380.         dreal  f;
  1381.   #else GFLOAT
  1382.         freal  f;
  1383. ***************
  1384. *** 45,49
  1385.         double d;
  1386.         quad   q;
  1387.         dreal  f;
  1388.       }
  1389.     realvalue;
  1390.  
  1391. --- 70,78 -----
  1392.         quad   q;
  1393.   #ifndef GFLOAT
  1394.         dreal  f;
  1395. + #else GFLOAT
  1396. +       freal  f;
  1397. +       greal  g;
  1398. + #endif GFLOAT
  1399.       }
  1400.     realvalue;
  1401. SHAR_EOF
  1402. chmod +x 'conv.h.diff'
  1403. chdir ..
  1404. chdir ..
  1405. chdir ..
  1406. if test -f 'modf.s'
  1407. then
  1408.     echo shar: over-writing existing file "'modf.s'"
  1409. fi
  1410. cat << \SHAR_EOF > 'modf.s'
  1411. /*    modf.s    4.1    83/06/27    */
  1412. /*
  1413. NOTE (Apr. 1985): wrtfmt.o calls ecvt in libc.a which calls modf.
  1414. This is a modified source that works only for G-format.
  1415. */
  1416.  
  1417. /*
  1418.  * double modf (value, iptr)
  1419.  * double value, *iptr;
  1420.  *
  1421.  * Modf returns the fractional part of "value",
  1422.  * and stores the integer part indirectly through "iptr".
  1423.  */
  1424.  
  1425. /* #include "DEFS.h" */
  1426. #define    ENTRY(x)    .globl _/**/x; .align 2; _/**/x: .word 0
  1427.  
  1428. ENTRY(modf)
  1429.     emodg    4(ap),$0,$0g1.0,r2,r0
  1430.     jvs    1f            # integer overflow
  1431.     cvtlg    r2,*12(ap)
  1432.     ret
  1433. 1:
  1434.     subg3    r0,4(ap),*12(ap)
  1435.     ret
  1436. SHAR_EOF
  1437. chmod +x 'modf.s'
  1438. if test -f 'NOTE'
  1439. then
  1440.     echo shar: over-writing existing file "'NOTE'"
  1441. fi
  1442. cat << \SHAR_EOF > 'NOTE'
  1443.  
  1444. NOTE (UW, Apr. 1985): wrtfmt.o calls ecvt in libc.a which calls modf.
  1445. Modf must be replaced by a version corrected for G-format uVaxes.
  1446. A source that works is included in this directory.
  1447.  
  1448.     The f77 built-in functions (sin(x), etc) use the C math library and
  1449. are subject to the bugs in it.  As a beginning, re-compile sin.c
  1450. without optimization.
  1451. SHAR_EOF
  1452. chmod +x 'NOTE'
  1453. if test ! -d 'libU77'
  1454. then
  1455.     mkdir 'libU77'
  1456. fi
  1457. cd 'libU77'
  1458. if test -f 'dtime_.c.diff'
  1459. then
  1460.     echo shar: over-writing existing file "'dtime_.c.diff'"
  1461. fi
  1462. cat << \SHAR_EOF > 'dtime_.c.diff'
  1463. 29a30,34
  1464. > #ifdef GFLOAT
  1465. > union { double d;
  1466. >     float r[2];
  1467. >     } res;
  1468. > #endif GFLOAT
  1469. 35a41,44
  1470. > #ifdef GFLOAT
  1471. >     res.r[0] = (dt->usrtime + dt->systime);
  1472. >     return( res.d );
  1473. > #else GFLOAT
  1474. 36a46
  1475. > #endif GFLOAT
  1476. SHAR_EOF
  1477. chmod +x 'dtime_.c.diff'
  1478. if test -f 'Makefile.diff'
  1479. then
  1480.     echo shar: over-writing existing file "'Makefile.diff'"
  1481. fi
  1482. cat << \SHAR_EOF > 'Makefile.diff'
  1483. 6c6
  1484. < CFLAGS          = -O
  1485. ---
  1486. > CFLAGS          = -O -DGFLOAT
  1487. SHAR_EOF
  1488. chmod +x 'Makefile.diff'
  1489. chdir ..
  1490. if test ! -d 'f77.gfloat'
  1491. then
  1492.     mkdir 'f77.gfloat'
  1493. fi
  1494. cd 'f77.gfloat'
  1495. if test -f 'Makefile'
  1496. then
  1497.     echo shar: over-writing existing file "'Makefile'"
  1498. fi
  1499. cat << \SHAR_EOF > 'Makefile'
  1500. PROGRAMS      = f77 f77pass1 f1 f2 fpr fsplit libF77.a libI66.a libI77.a \
  1501.                 libU77.a modf.o
  1502.  
  1503. install:    $(PROGRAMS)
  1504.         @echo Installing f77 in /usr/bin
  1505.         install f77 /usr/bin
  1506.         @echo Installing f77pass1 in /usr/lib
  1507.         install f77pass1 /usr/lib
  1508.         @echo Installing f1 in /lib
  1509.         @install f1 /lib
  1510.         @echo Installing f2 in /lib
  1511.         @install f2 /lib
  1512.         @echo Installing fpr in /usr/ucb
  1513.         @install fpr /usr/ucb
  1514.         @echo Installing fsplit in /usr/ucb
  1515.         @install fsplit /usr/ucb
  1516.         @echo Installing libF77.a in /usr/lib
  1517.         install -m 644 libF77.a /usr/lib
  1518.         ranlib /usr/lib/libF77.a
  1519.         @echo Installing libI77.a in /usr/lib
  1520.         install -m 644 libI77.a /usr/lib
  1521.         ranlib /usr/lib/libI77.a
  1522.         @echo Installing libU77.a in /usr/lib
  1523.         install -m 644 libU77.a /usr/lib
  1524.         ranlib /usr/lib/libU77.a
  1525.         @echo Installing libI66.a in /usr/lib
  1526.         install -m 644 libI66.a /usr/lib
  1527.         @echo Fixing modf.o in /lib/libc.a
  1528.         mv modf.o /lib
  1529.         ar r /lib/libc.a /lib/modf.o
  1530.         ranlib /lib/libc.a
  1531.         rm /lib/modf.o
  1532.  
  1533. collect:    
  1534.         cp /usr/bin/f77 .
  1535.         cp /usr/lib/f77pass1 .
  1536.         cp /lib/f1 .
  1537.         cp /lib/f2 .
  1538.         cp /usr/ucb/fpr .
  1539.         cp /usr/ucb/fsplit .
  1540.         cp /usr/lib/libF77.a .
  1541.         cp /usr/lib/libI77.a .
  1542.         cp /usr/lib/libU77.a .
  1543.         cp /usr/lib/libI66.a .
  1544.         ar x /lib/libc.a modf.o
  1545. SHAR_EOF
  1546. chmod +x 'Makefile'
  1547. if test -f 'READ_ME'
  1548. then
  1549.     echo shar: over-writing existing file "'READ_ME'"
  1550. fi
  1551. cat << \SHAR_EOF > 'READ_ME'
  1552.      This directory contains the modified executable code and libraries
  1553. for f77 to run on a G-float Vax, such as the majority of early microvaxes.
  1554. It also contains a modified modf.o for /lib/libc.a, which contains a 
  1555. bug in Ultrix 1.0.
  1556.  
  1557. 1.  Log on or su as root, and copy this directory to the G-format machine.
  1558.  
  1559. 2.  Type make install from this directory.
  1560.  
  1561. 3.  Stand well back.
  1562.  
  1563. 4.  NOTE that the contents of this directory will be moved to the
  1564.     appropriate places, and will no longer exist here.
  1565.  
  1566. 5.  NOTE ALSO that the f77 built-in math functions access the C math
  1567.     library, and the bugs therein.
  1568. SHAR_EOF
  1569. chmod +x 'READ_ME'
  1570. chdir ..
  1571. if test -f 'tog.p'
  1572. then
  1573.     echo shar: over-writing existing file "'tog.p'"
  1574. fi
  1575. cat << \SHAR_EOF > 'tog.p'
  1576. program torig( input, output );
  1577. { This Pascal program will convert #ifdef GFLOAT files to 
  1578.   pure g-float files.  There is no pretense of efficiency.}
  1579.  
  1580. const buflen=133;
  1581. type bufstr=packed array[1..buflen] of char;
  1582. var
  1583.     buf: bufstr;
  1584.     linlen: integer;
  1585.  
  1586. procedure rdbuf;
  1587. begin
  1588.     linlen := 0;
  1589.     if not eof then while not eoln do begin
  1590.         linlen := linlen+1;
  1591.         read( buf[linlen] )
  1592.         end;
  1593.     if not eof then readln
  1594.     end;
  1595.  
  1596. procedure wrtbuf;
  1597. begin
  1598.     if linlen=0 then writeln
  1599.     else writeln( buf:linlen )
  1600.     end;
  1601.  
  1602. function match( strng: bufstr; len: integer ): boolean;
  1603. var 
  1604.     ok: boolean;
  1605.     i: integer;
  1606. begin
  1607.     i := 1;
  1608.     ok := true;
  1609.     while ok and (i<=len) do begin
  1610.         ok := (strng[i]=buf[i]);  
  1611.         i := i+1
  1612.         end;
  1613.     match := ok
  1614.     end; 
  1615.  
  1616. begin { torig }
  1617.     while not eof do begin
  1618.         rdbuf;
  1619.         if match('#ifdef GFLOAT',13) then 
  1620.             repeat
  1621.                 rdbuf;
  1622.                 if match('#else GFLOAT',12) then 
  1623.                     repeat rdbuf until match('#endif GFLOAT',13)
  1624.                 else if not match('#endif GFLOAT',13) then wrtbuf
  1625.             until match('#endif GFLOAT',13)
  1626.         else if match('#ifndef GFLOAT',14) then
  1627.             repeat
  1628.                 rdbuf;
  1629.                 if match('#else GFLOAT',12) then begin
  1630.                     rdbuf;
  1631.                     while not match('#endif GFLOAT',13) do begin
  1632.                         wrtbuf;
  1633.                         rdbuf
  1634.                         end
  1635.                     end
  1636.             until match('#endif GFLOAT',13)
  1637.         else wrtbuf
  1638.         end
  1639.     end.
  1640. SHAR_EOF
  1641. chmod +x 'tog.p'
  1642. chdir ..
  1643. #    End of shell archive
  1644. exit 0
  1645.  
  1646.